package com.futvan.z.framework.util;

//import com.easemob.im.server.EMException;
//import com.easemob.im.server.EMProperties;
//import com.easemob.im.server.EMService;
//import com.easemob.im.server.model.EMKeyValue;
//import com.easemob.im.server.model.EMTextMessage;
//import com.easemob.im.server.model.EMUser;
import com.futvan.z.framework.common.bean.Result;
import com.futvan.z.framework.core.z;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

/**
 * 环信工具类
 */
public class EasemobUtil {


//    private static String hx_base_url = "https://a1.easemob.com/1119220916099783/yg";
//    private static String APPKEY ="1119220916099783#yg";
//    private static String ClientID="YXA6Y_B4gty3TT2ALkIL6DlkSw";
//    private static String ClientSecret = "YXA65c-1o0IZ_u5zTdU5Hs58dz6JpWw";

//    private static String hx_base_url = z.sp.get("hx_base_url");
//    private static String APPKEY = z.sp.get("hx_APPKEY");
//    private static String ClientID=z.sp.get("hx_ClientID");
//    private static String ClientSecret = z.sp.get("hx_ClientSecret");
//    public static void main(String[] args) throws Exception {
//
//        z.es = EasemobUtil.ConnEMService();
//        Result result = EasemobUtil.Send("H88888888","aafsdfasd","您的订单【asdfasdfasd】已发货");
//        if(result.ifSuccess()){
//            System.out.println(result.getMsg()+"|"+result.getData());
//        }else{
//            System.out.println(result.getMsg());
//        }
//
//    }
//
//    private static String getToken() throws Exception {
//        String url = hx_base_url+"/token";
//        HashMap p = new HashMap();
//        p.put("grant_type","client_credentials");
//        p.put("client_id",ClientID);
//        p.put("client_secret",ClientSecret);
//        p.put("ttl","1024000");
//        String html = doPost(url,JsonUtil.getJson(p),null);
//        HashMap rm = new HashMap();
//        rm = JsonUtil.getObject(html,HashMap.class);
//        String token = String.valueOf(rm.get("access_token"));
//        return token;
//    }
//
//    /**
//     * 发送通知
//     * @param userid
//     * @param title
//     * @param content
//     * @return
//     */
//    public static Result Send(String userid, String title, String content){
//        Result result = new Result();
//        if(z.isNotNull(userid)){
//            userid = "hx"+userid.toLowerCase();
//            if(z.isNotNull(title)){
//                if(z.isNotNull(content)){
//                    EMService es = z.es;
//                    if(z.isNotNull(es)){
//                        try {
//
//                            //判读用户是否注册，未注册用户，执行注册
//                            Result ur = getUser(userid);
//                            if(ur.ifError()){
//                                CreateUser(userid);
//                            }
//
//                            //接收用户信息
//                            List<String> userlist = new ArrayList<String>();
//                            userlist.add(userid);
//
//                            //接收信息
//                            HashMap<String,String> pushMessage = new HashMap<String,String>();
//                            pushMessage.put("title",title);
//                            pushMessage.put("content",content);
//                            HashMap p = new HashMap();
//                            p.put("targets",userlist);
//                            p.put("pushMessage",pushMessage);
//                            String json = JsonUtil.getJson(p);
//                            String html = doPost(hx_base_url+"/push/single",json,"Bearer "+getToken());
//                            result.setSuccess("发送成功",html);
//                        } catch (EMException e) {
//                            result.setError("发送失败",e.getErrorCode()+"|"+e.getMessage());
//                        } catch (Exception e) {
//                            throw new RuntimeException(e);
//                        }
//                    }else{
//                        result.setError("EMService未初始化");
//                    }
//                }else{
//                    result.setError("info is not null");
//                }
//            }else{
//                result.setError("title is not null");
//            }
//        }else{
//            result.setError("userid is not null");
//        }
//        return result;
//    }
//
//
//    public static Result CreateUser(String userid) {
//        Result result = new Result();
//        if(z.isNotNull(userid)){
//            if(!"hx".equals(userid.substring(0,2))){
//                userid = "hx"+userid.toLowerCase();
//            }else{
//                userid = userid.toLowerCase();
//            }
//
//            EMService es = z.es;
//            if(z.isNotNull(es)){
//                try {
//                    es.user().create(userid, userid).block();
//                    result.setSuccess();
//                } catch (EMException e) {
//                    result.setError(e.getErrorCode()+"|"+e.getMessage());
//                }
//            }else{
//                result.setError("EMService未初始化");
//            }
//        }else{
//            result.setError("userid is not null");
//        }
//        return result;
//    }
//
//    public static Result getUser(String userid) {
//        Result result = new Result();
//        if(z.isNotNull(userid)){
//            if(!"hx".equals(userid.substring(0,2))){
//                userid = "hx"+userid.toLowerCase();
//            }else{
//                userid = userid.toLowerCase();
//            }
//            EMService es = z.es;
//            if(z.isNotNull(es)){
//                try {
//                    EMUser user = es.user().get(userid).block();
//                    if(z.isNotNull(user)){
//                        result.setSuccess();
//                    }else{
//                        result.setError("未找到用户："+userid);
//                    }
//
//                } catch (EMException e) {
//                    result.setError(e.getErrorCode()+"|"+e.getMessage());
//                }
//            }else{
//                result.setError("EMService未初始化");
//            }
//        }else{
//            result.setError("userid is not null");
//        }
//        return result;
//    }
//
//
//
//    public static EMService ConnEMService(){
//        EMProperties properties = EMProperties.builder()
//                .setAppkey(APPKEY)
//                .setClientId(ClientID)
//                .setClientSecret(ClientSecret)
//                .build();
//        return new EMService(properties);
//    }
//
//    public static String doPost(String url,String json,String Authorization) throws Exception {
//        RequestConfig defaultRequestConfig = RequestConfig.custom().setConnectTimeout(20000).setSocketTimeout(20000).setConnectionRequestTimeout(20000).build();
//        //创建连接
//        CloseableHttpClient httpclient = HttpClients.custom().setDefaultRequestConfig(defaultRequestConfig).build();
//        //创建请求
//        HttpPost doPost = new HttpPost(url);
//        if(z.isNotNull(Authorization)){
//            doPost.addHeader("Authorization", Authorization);
//        }
//        StringEntity requestEntity = new StringEntity(json,"utf-8");
//        requestEntity.setContentEncoding("UTF-8");
//        doPost.setHeader("Content-type", "application/json");
//        doPost.setEntity(requestEntity);
//
//        //执行
//        HttpResponse response = httpclient.execute(doPost);
//        int status = response.getStatusLine().getStatusCode();
//        if (status >= 200 && status < 300) {
//            HttpEntity entity = response.getEntity();
//            //如果返回信息不为空，直接输出。
//            String html = entity != null ? EntityUtils.toString(entity,"utf-8"):"";
//            return html;
//        }else {
//            z.Error("HTTP ERROR : " + status);
//            return "";
//        }
//    }


}
